home *** CD-ROM | disk | FTP | other *** search
- Path: bbn.com!rsalz
- From: rsalz@uunet.uu.net (Rich Salz)
- Newsgroups: comp.sources.unix
- Subject: v16i007: Modem communications package, Part02/08
- Message-ID: <1059@fig.bbn.com>
- Date: 13 Sep 88 16:41:01 GMT
- Lines: 1709
- Approved: rsalz@uunet.UU.NET
-
- Submitted-by: Emmet P Gray <fthood!egray>
- Posting-number: Volume 16, Issue 7
- Archive-name: pcomm2/part03
-
- #! /bin/sh
- # This is a shell archive, meaning:
- # 1. Remove everything above the #! /bin/sh line.
- # 2. Save the resulting text in a file.
- # 3. Execute the file with /bin/sh (not csh) to create:
- # Readme
- # Release.notes
- # Makefile
- # Pcomm.1
- # Pcomm.dial_dir
- # Pcomm.modem
- # Pcomm.param
- # Unixpc.shar
- # config.h
- # dial_dir.h
- # misc.h
- # modem.h
- # param.h
- # status.h
- # vcs.h
- # xmodem.h
- export PATH; PATH=/bin:/usr/bin:$PATH
- echo shar: "extracting 'Readme'" '(6391 characters)'
- if test -f 'Readme'
- then
- echo shar: "will not over-write existing file 'Readme'"
- else
- sed 's/^X//' << \SHAR_EOF > 'Readme'
- X
- X Pcomm
- X A Unix Telecommunication Program
- X
- XThings to do first:
- X
- X 1) Figure out what files you need to extract. There is a shell
- X archive called "Unixpc.shar" that contains additional (and
- X replacement) files for users of the AT&T Unix PC 7300/3b1.
- X
- X 2) Create a default directory where the Pcomm support files will
- X go. A good location might be /usr/local/lib/pcomm.
- X
- X 3) Copy the sample support files Pcomm.dial_dir, Pcomm.modem,
- X and Pcomm.param to the default directory and rename them to
- X change the uppercase "P" to a lower case "p". The files should
- X *not* have write permission to all.
- X
- X 4) Copy (and rename as appropriate) the Pcomm.1 nroff manual to
- X the proper /usr/man directory.
- X
- X 5) Print the Doc file by piping the output of the Unix "pr"
- X command with the title separated by lots of white space (to help
- X center it), for example:
- X
- X pr -h " Pcomm Reference Manual " Doc | lp
- X
- XHow to configure Pcomm:
- X
- X 1) Edit the "config.h" file to suit your system's needs and your
- X personal taste. Sites running HoneyDanBer (HDB) UUCP should pay
- X particular attention to the LOCK_DIR, ASCII_PID, and SETUGID
- X definitions. The definitions in config.h are:
- X
- X UNIXPC If defined, use the dial(3) routines specific
- X to the AT&T Unix PC 7300/3b1. Useful only if
- X the On Board Modem (OBM) is to be used.
- X
- X OLDCURSES If defined, use the older version of curses(3).
- X (uses termcap in lieu of terminfo). Some
- X versions of the AT&T Unix PC 7300/3b1 may
- X require this.
- X
- X SHAREDMEM If defined, keeps the virtual screen area in
- X shared memory rather than in a file. Some
- X performance gains are realized if shared memory
- X is used.
- X
- X NOPROMOTE If defined, do not promote missing video
- X attributes to standout. Normally, curses(3)
- X attempts to compensate for missing attributes.
- X
- X SETUGID If defined, extra precautions are taken before
- X opening files or doing a shell escape to restore
- X the real UID/GID. Useful if Pcomm is installed
- X as a set-user-id or get-group-id program. HDB
- X programs often are set-user-id to uucp.
- X
- X LOG_CALLS If defined, Pcomm will keep an administrative log
- X of all calls. The log contains the name of the
- X person making the call, the phone number, and a
- X date/time stamp. Useful for verifying long
- X distance phone bills.
- X
- X LOGFILE The path to the log file (if LOG_CALLS is
- X defined). It should have write permission to
- X all or be writeable under set-user/group-id
- X conditions.
- X
- X LIMIT_LD If defined, Pcomm will limit long distance
- X (toll) calls to a privileged group. The file
- X "admin.c" may require tweeking to detect what is
- X a long distance number.
- X
- X GROUP_NAME The name of the group that is allowed to make
- X long distance calls (if LIMIT_LD is defined).
- X
- X LPR The path to the line printer program (this is
- X not the name of the device).
- X
- X LPRINT The path to the "pretty" line printer program.
- X Typically a program that performs a "pr | lp"
- X function. If none exist, use the same as LPR.
- X
- X DEFAULT_DIR The path to the directory that contains the
- X default Pcomm support files.
- X
- X LOCK_DIR The path to the directory where the UUCP lock
- X files are found. On HDB systems this would
- X typically be /usr/spool/locks.
- X
- X ASCII_PID If defined, the lock files will contain an ASCII
- X encoded process id (PID). On HDB systems this
- X is the default.
- X
- X KEEP_PORT If defined, the port will be kept open between
- X dialing attempts to save time. Some systems
- X may require the modem to be closed and reopened
- X every time.
- X
- X XMC_BROKE Does the status line scroll up when using "magic
- X cookie" terminals? Some Pyramid and AT&T
- X systems may require this to be defined. Find a
- X magic cookie terminal (a Wyse 50 for example),
- X and see what happens.
- X
- X WGETCH_BROKE Does the alarm() system call work correctly with
- X the wgetch() function? Some Masscomp systems
- X will require this to be defined. Symptom: the
- X initial screen doesn't go away by itself after 5
- X seconds.
- X
- X 2) Edit the Makefile. There are provisions in the Makefile to
- X include getcwd() and getopt() routines if they are missing from
- X your system. You may want to customize the CFLAGS, LDFLAGS, and
- X BIN assignments to suit your needs.
- X
- X 3) Compile pcomm and pcomm_input. Type "make". The Makefile
- X will attempt to install "pcomm" and "pcomm_input" into the BIN
- X directory given in the Makefile. However, those sites running
- X HDB UUCP software may require you to change the mode of "pcomm"
- X to be set-user-id to uucp. DO NOT CHANGE THE SET-UID/GID BITS
- X ON THE "pcomm_input" PROGRAM.
- X
- X 4) Update the sample modem/TTY database. I know I'm asking the
- X impossible, but... Read section 3 and the Appendices of the Doc
- X file first, then run Pcomm to update the modem/TTY database by
- X using the TTY Setup and the Modem Setup menues. You will need
- X to know:
- X
- X o The types and number of modems available for dial out
- X o The TTY ports attached to the modems
- X o The range of baud rates at which the modems operate
- X o How to initialize the modems to suit Pcomm's needs
- X o How to make the modems dial
- X
- X During this step, you will need write permission on the support
- X files in the default directory. RESIST THE TEMPTATION TO EDIT
- X THE SUPPORT FILES DIRECTLY.
- X
- XPortability considerations:
- X
- X 1) This program was written with AT&T System V in mind. It
- X makes use of System V specific routines such as shared memory
- X and the ioctl() calls of termio(7). There is currently no
- X port to Berkeley or v7 Unix.
- X
- X 2) Pcomm makes use of the bold, blinking and standout video
- X attributes. My concept of "standout" and "reverse" might be
- X different than yours (I like "standout" to be a brighter version
- X of "reverse"). Check your terminfo database...
- X
- X 3) The "port.c" file has a place where you can include your own
- X routine to toggle the getty process on a port (if required).
- X
- X 4) If you compile Pcomm with LOG_CALLS defined, you'll have to
- X look at the code in "admin.c" to see if the long distance
- X detection routine is correct for your site.
- X
- X 5) Compilers that adhere to the draft ANSI C Standard will bark
- X at the declartions of signal(), perror(), malloc(), fread(), and
- X fwrite().
- X
- XEmmet P. Gray US Army, HQ III Corps & Fort Hood
- X...!uunet!uiucuxc!fthood!egray Attn: AFZF-DE-ENV
- X Directorate of Engineering & Housing
- X Environmental Management Office
- X Fort Hood, TX 76544-5057
- SHAR_EOF
- if test 6391 -ne "`wc -c < 'Readme'`"
- then
- echo shar: "error transmitting 'Readme'" '(should have been 6391 characters)'
- fi
- fi
- echo shar: "extracting 'Release.notes'" '(5256 characters)'
- if test -f 'Release.notes'
- then
- echo shar: "will not over-write existing file 'Release.notes'"
- else
- sed 's/^X//' << \SHAR_EOF > 'Release.notes'
- X
- X Pcomm version 1.1
- X 15 Aug 88
- X
- XIncompatibilities with v1.0:
- X
- X I've added a few more fields to the pcomm.param and pcomm.modem
- X files. This means that those files created under previous
- X releases will not be compatible with the v1.1 release. It might
- X be a good idea to abandon the older files and start over with
- X the sample files in this release.
- X
- XThings that have changed:
- X
- X An awful lot of sloppy programming on my part has now been
- X cleaned up. This means that porting Pcomm to different versions
- X of Unix will be considerably less painful than before.
- X
- X All of the tunable parameters are now in "config.h".
- X
- X Pcomm now uses buffered I/O routines. This yields higher
- X performance I/O at large baud rates.
- X
- X File transfers now use high performance CRC calculations.
- X
- X If a UUCP lockfile does exist, Pcomm now attempts to determine
- X if the process is still active.
- X
- X An external file transfer program can be invoked from the file
- X transfer menu.
- X
- X The keyboard macro feature is now supported (although it is
- X rather crude).
- X
- X The virtual screen routine now understands a limited subset of
- X escape sequences.
- X
- X The virtual screen can now be held in shared memory or in a file.
- X
- X The input routine is now contained in a separate program called
- X pcomm_input.
- X
- X You can now include a "modem break" in a dial or initialization
- X string.
- X
- X A separate "initialization speed" feature was added to support
- X 9600 baud modems such as the Telebit Trailblazer. See Appendix
- X C of the Doc file for more info on the use of this feature.
- X
- X I've added a transparent pass through mode to be used in a
- X communications daisy chain.
- X
- XKnown limitations:
- X
- X Whenever Pcomm makes the transition from the terminal mode to
- X the command mode, the true screen contents are lost. Pcomm
- X tries to keep track of what the true screen looks like in an
- X internal "virtual screen". This means that the escape sequences
- X known to the hardware have to be emulated in the virtual screen.
- X Unfortunately, the number of escape sequences that are emulated
- X is quite small, so the representation of the true screen is
- X sometimes wrong.
- X
- X For the VCS (video command sequence) emulation to work, the
- X terminfo entries on the host machine must match the entries on
- X the remote.
- X
- X The disp_tty() routine in s_tty.c currently does not support a
- X NUM_TTY definition of greater than 10.
- X
- XFuture directions:
- X
- X Continue work on the virtual screen routines.
- X
- X Add dial back support.
- X
- X Use shared memory to overcome the current limitation of outgoing
- X characters in the half duplex mode not appearing in the virtual
- X screen, log files, and print logs.
- X
- XMany thanks to the following people for bug reports and ideas for
- Ximproving the code:
- X
- X Andy Pitts ...{mtune,pacbell,kd4nc}!gladys!rbdc!andy
- X Chris Wiener ...ihnp4!{killer,attnssc}!crlabs!cwiener
- X David Brierley ...{sun,decuac,cbosgd,gatech,necntc,ukma}!rayssd!dhb
- X Karl Fox ...cbosgd!mstar!karl
- X Michael Young ...panda!genrad!mrst!sdti!mjy
- X Mark Mendel ...ihnp4!umn-cs!hyper!mark
- X Viet Hoang ...ihnp4!drutx!vgh
- X
- X--------------------------------------------------------------------------------
- X
- X Pcomm version 1.0
- X 12 Mar 88
- X
- XIncompatibilities with the beta release:
- X
- X I've added a bunch of new parameters to the pcomm.param and
- X pcomm.modem files, so the files used with the beta release won't
- X work with the v1.0 release.
- X
- XThings that have changed:
- X
- X Pcomm will attempt to determine if the modem has synchronized at
- X a baud rate different than what is expected, and make changes to
- X the line settings as appropriate.
- X
- X The quit and interrupt signals are now ignored.
- X
- X All of the file transfer protocols are now functional.
- X
- X The directory search order used to find the support files has
- X been changed slightly.
- X
- XKnown limitations:
- X
- X The keyboard macro feature is not implemented at this time.
- X
- X The true screen contents are lost when the "hot key" is pressed.
- X Pcomm attempts to compensate (rather poorly) by repainting a
- X virtual screen of what it thinks the true screen should look
- X like. Escape sequences in the virtual screen image will be
- X ignored when the background is repainted. For example, if
- X you're on a vt100 and you recieve a ^[[2J to clear the screen,
- X the screen *will* be cleared... but when the screen is
- X repainted, it will contain the characters ^[, [, 2, J (instead
- X of performing the function).
- X
- X The disp_tty() routine in s_tty.c currently does not support a
- X NUM_TTY definition of greater than 10.
- X
- X For some strange reason, the first keystroke is "lost" after a
- X file transfer is complete or after starting data logging.
- X
- XFuture directions:
- X
- X The virtual screen routines need a lot of work. The most
- X commonly used escape sequences (known to terminfo) will be
- X processed.
- X
- X I plan to have an option at compile time to have the virtual
- X screen buffer held on disk [] or in shared memory [].
- X
- X The input routine is designed so it could be a standalone
- X program that gets called from Pcomm. []
- X
- X-------------------------------------------------------------------------------
- X
- XHave fun...
- X
- XEmmet P. Gray US Army, HQ III Corps & Fort Hood
- X...!uunet!uiucuxc!fthood!egray Attn: AFZF-DE-ENV
- X Directorate of Engineering & Housing
- X Environmental Management Office
- X Fort Hood, TX 76544-5057
- SHAR_EOF
- if test 5256 -ne "`wc -c < 'Release.notes'`"
- then
- echo shar: "error transmitting 'Release.notes'" '(should have been 5256 characters)'
- fi
- fi
- echo shar: "extracting 'Makefile'" '(3691 characters)'
- if test -f 'Makefile'
- then
- echo shar: "will not over-write existing file 'Makefile'"
- else
- sed 's/^X//' << \SHAR_EOF > 'Makefile'
- X# PCOMM
- X# for generic System V Unix
- X#
- X# for systems without getcwd(3) or getopt(3)
- X#
- X#GETCWD = getcwd.o
- X#GETOPT = getopt.o
- X
- XCFLAGS = -O
- X#CURSES = -ltermlib -lcurses
- XCURSES = -lcurses
- XLDFLAGS = -s
- XSHAR = shar -a
- XBIN = /usr/local/bin
- X
- XPCOMM = $(GETCWD) $(GETOPT) admin.o chg_dir.o curses.o d_delete.o \
- X d_lib.o d_manual.o d_menu.o d_print.o d_prompt.o d_revise.o \
- X data_log.o di_delay.o di_win.o dial.o expand.o help.o info.o \
- X init.o line_set.o list_dir.o ls_menu.o m_lib.o macro.o main.o \
- X n_shell.o p_lib.o passthru.o pexit.o port.o redial.o s_axfer.o \
- X s_gen.o s_menu.o s_modem.o s_prompt.o s_term.o s_tty.o screen.o \
- X st_line.o strings.o terminal.o x_ascii.o x_batch.o x_extrnl.o \
- X x_menu.o x_rcv.o x_send.o x_win.o xmodem.o
- X
- XINPUT = input.o vcs.o
- X
- Xall: pcomm pcomm_input install
- X
- Xpcomm: $(PCOMM)
- X $(CC) $(LDFLAGS) $(PCOMM) -o pcomm $(CURSES)
- X
- Xpcomm_input: $(INPUT)
- X $(CC) $(LDFLAGS) $(INPUT) -o pcomm_input $(CURSES)
- X
- Xinstall:
- X cp pcomm $(BIN)
- X# rm pcomm
- X cp pcomm_input $(BIN)
- X# rm pcomm_input
- X
- Xlint:
- X lint -p -Dlint *.c
- X
- Xshar:
- X cat Doc > pcomm_sh.1
- X $(SHAR) Readme Release.notes Makefile Pcomm.1 Pcomm.dial_dir \
- X Pcomm.modem Pcomm.param Unixpc.shar config.h dial_dir.h misc.h \
- X modem.h param.h status.h vcs.h xmodem.h > pcomm_sh.2
- X $(SHAR) admin.c chg_dir.c curses.c d_delete.c d_lib.c d_manual.c \
- X d_menu.c d_print.c d_prompt.c d_revise.c data_log.c di_delay.c \
- X > pcomm_sh.3
- X $(SHAR) di_win.c dial.c expand.c getcwd.c getopt.c help.c info.c \
- X init.c input.c line_set.c list_dir.c ls_menu.c > pcomm_sh.4
- X $(SHAR) m_lib.c macro.c main.c n_shell.c p_lib.c passthru.c \
- X pexit.c port.c redial.c > pcomm_sh.5
- X $(SHAR) s_axfer.c s_gen.c s_menu.c s_modem.c s_prompt.c s_term.c \
- X s_tty.c screen.c st_line.c strings.c terminal.c > pcomm_sh.6
- X $(SHAR) vcs.c x_ascii.c x_batch.c x_extrnl.c x_menu.c x_rcv.c \
- X > pcomm_sh.7
- X $(SHAR) x_send.c x_win.c xmodem.c > pcomm_sh.8
- X
- Xadmin.o: config.h dial_dir.h param.h
- Xchg_dir.o: config.h misc.h
- Xcurses.o: config.h misc.h
- Xd_delete.o: config.h dial_dir.h misc.h param.h
- Xd_lib.o: dial_dir.h param.h
- Xd_manual.o: config.h misc.h dial_dir.h
- Xd_menu.o: config.h dial_dir.h misc.h param.h
- Xd_print.o: config.h dial_dir.h misc.h
- Xd_prompt.o: config.h dial_dir.h misc.h
- Xd_revise.o: config.h dial_dir.h misc.h param.h
- Xdata_log.o: config.h misc.h param.h status.h
- Xdi_delay.o: config.h misc.h param.h
- Xdi_win.o: config.h dial_dir.h misc.h modem.h param.h
- Xdial.o: config.h dial_dir.h misc.h modem.h param.h
- Xexpand.o: config.h
- Xhelp.o: config.h misc.h
- Xinit.o: config.h misc.h status.h
- Xinput.o: config.h misc.h status.h vcs.h
- Xline_set.o: dial_dir.h param.h
- Xlist_dir.o: config.h misc.h
- Xls_menu.o: config.h dial_dir.h misc.h param.h
- Xm_lib.o: modem.h
- Xmacro.o: config.h misc.h param.h
- Xmain.o: config.h dial_dir.h modem.h param.h status.h
- Xn_shell.o: config.h
- Xp_lib.o: param.h
- Xpassthru.o: config.h misc.h
- Xpexit.o: config.h dial_dir.h misc.h param.h status.h
- Xport.o: config.h dial_dir.h modem.h
- Xredial.o: config.h dial_dir.h misc.h
- Xs_axfer.o: config.h misc.h param.h
- Xs_gen.o: config.h misc.h param.h
- Xs_menu.o: config.h misc.h
- Xs_modem.o: config.h misc.h modem.h
- Xs_prompt.o: config.h misc.h
- Xs_term.o: config.h misc.h param.h status.h
- Xs_tty.o: config.h misc.h modem.h
- Xscreen.o: config.h param.h status.h
- Xst_line.o: config.h dial_dir.h misc.h modem.h param.h status.h
- Xterminal.o: config.h dial_dir.h misc.h modem.h param.h status.h
- Xvcs.o: config.h vcs.h
- Xx_ascii.o: config.h misc.h param.h
- Xx_batch.o: config.h misc.h xmodem.h
- Xx_extrnl.o: config.h
- Xx_menu.o: config.h misc.h xmodem.h
- Xx_rcv.o: config.h dial_dir.h misc.h xmodem.h
- Xx_send.o: config.h dial_dir.h misc.h xmodem.h
- Xx_win.o: config.h dial_dir.h misc.h xmodem.h
- Xxmodem.o: config.h misc.h param.h xmodem.h
- SHAR_EOF
- if test 3691 -ne "`wc -c < 'Makefile'`"
- then
- echo shar: "error transmitting 'Makefile'" '(should have been 3691 characters)'
- fi
- fi
- echo shar: "extracting 'Pcomm.1'" '(7955 characters)'
- if test -f 'Pcomm.1'
- then
- echo shar: "will not over-write existing file 'Pcomm.1'"
- else
- sed 's/^X//' << \SHAR_EOF > 'Pcomm.1'
- X.TH PCOMM 1 local
- X.SH NAME
- Xpcomm \- a telecommunication program
- X.SH SYNOPSIS
- X.B pcomm
- X[
- X.B -d
- Xdirectory ] [
- X.B -f
- Xindex ]
- X.SH DESCRIPTION
- X.I Pcomm
- Xis a public domain telecommunication program for Unix that is designed
- Xto operate similar to the MSDOS program, ProComm. ProComm (TM) is
- Xcopyrighted by Datastorm Technologies, Inc.
- X.PP
- XThe "-d" option is used to specify an additional path to search for the
- XPcomm support files.
- X.PP
- XThe "-f" option is used to specify automatic dialing of an entry in the
- Xdialing directory. The "index" field in the dialing directory is
- Xchecked against the string given on the command line. If a match is
- Xfound, that entry is automatically dialed.
- X.PP
- XWhenever
- X.I Pcomm
- Xis in the command mode, a status line is displayed at the bottom of the
- Xscreen. The eight fields of the status line are:
- X.PP
- X.RS 5
- X.nf
- X+o help screen command (or a temporary message)
- X+o name of the tty device in use
- X+o duplex mode (FDX = full duplex, HDX = half duplex)
- X+o current line settings
- X+o status of data logging option
- X+o status of printer logging option
- X+o incoming CR translation
- X+o outgoing CR translation
- X.fi
- X.RE
- X.SH COMMANDS
- XThe following commands are accessible by pressing a user definable "hot
- Xkey" followed by a letter, number, or arrow key. The default "hot key"
- Xis control-A. The notatation "^A-X" means control-A followed by the
- Xletter X. The dash (-) is for clarity, and is not a part of the command
- Xsequence.
- X.TP
- X.B ^A-0
- XHelp Screen. Display a brief review of the available commands. Uses
- Xthe number zero "0" not the letter "O".
- X.TP
- X.B ^A-D
- XDialing Directory. The dialing directory screen is used to display and
- Xmaintain the database of phone number entries, and to select an entry
- Xfor dialing. To select an entry to dial, just enter the entry number at
- Xthe prompt. The following commands are available from the dialing
- Xdirectory:
- X.RS 5
- X.TP
- X.B R
- XRevise (or add) a dialing directory entry or a long distance dialing
- Xcode.
- X.TP
- X.B P
- XPrint (display) the long distance dialing codes.
- X.TP
- X.B up/down
- XScroll the dialing directory up or down 10 lines. Uses the up and down
- Xarrow keys.
- X.TP
- X.B M
- XManual dial. Prompts for a phone number rather than using a number
- Xalready in the dialing directory.
- X.TP
- X.B D
- XDelete an entry or a range of entries.
- X.TP
- X.B L
- XPrint. Send the dialing directory to the printer or a file of your
- Xchoice.
- X.RE
- X.TP
- X.B ^A-R
- XAutomatic redial of selected dialing directory entries. Prompts the
- Xuser for a list of directory entries to be placed in the queue.
- X.I Pcomm
- Xwill dial the numbers in a cycle until one of them answers.
- X.TP
- X.B ^A-M
- XAllows the user to maintain a list of keyboard macros assigned to the
- Xshifted number keys. When pressed, the string assigned to that key is
- Xsent to the remote system.
- X.TP
- X.B ^A-P
- XAdjust the current communication line settings. Display a menu of baud
- Xrate, parity, data bit, and stop bit choices. Allows the new choice to
- Xbe saved and become the default. After dialing a remote, the line
- Xsettings in the dialing directory entry are automatically used. The
- Xcurrent line settings are shown in the status line.
- X.TP
- X.B ^A-X
- XExit from
- X.I Pcomm.
- X.TP
- X.B ^A-4
- XSpawn a Unix shell while still communicating with the remote system.
- XUses the "native" shell as described in the SHELL environmental
- Xvariable.
- X.TP
- X.B ^A-I
- XDisplay the program information screen.
- X.TP
- X.B ^A-S
- XDisplay a choice of setup screens. The following sub-menus are
- Xavailable:
- X.RS 5
- X.TP
- X.B 1
- XTTY Setup. This setup assigns the tty ports that
- X.I Pcomm
- Xis allowed to use, and what is attached to each port.
- X.TP
- X.B 2
- XModem Setup. The modem setup contains the commands to make the modem
- Xdial, hang up the phone, etc.
- X.TP
- X.B 3
- XTerminal Setup. The terminal setup contains the definition of the "hot
- Xkey" and the mapping of the end-of-line characters.
- X.TP
- X.B 4
- XGeneral Setup. The general setup contains the default log file name,
- Xand the set of character synonyms.
- X.TP
- X.B 5
- XASCII Transfer Setup. This setup screen contains additional character
- Xtranslations allowed during ASCII file transfers.
- X.TP
- X.B S
- XSave the changes to disk.
- X.RE
- X.TP
- X.B ^A-B
- XChange the current working directory.
- X.TP
- X.B ^A-C
- XClear the local screen and home the cursor.
- X.TP
- X.B ^A-E
- XToggle the duplex mode from full to half, or from half to full. The
- Xstatus line shows the current duplex mode.
- X.TP
- X.B ^A-H
- XHang up the phone. Disconnect the phone, but remain in
- X.I Pcomm.
- X.TP
- X.B ^A-L
- XToggle the printer on and off. Since the printer is accessed through
- Xthe normal Unix spool program, the output is not sent to the printer
- Xuntil
- X.B after
- Xthis feature is turned off.
- X.TP
- X.B ^A-3
- XToggle the incoming line termination characters between the carriage
- Xreturn and the carriage return line feed pair. This affects the
- Xterminal session only, not the file transfers. The current settings are
- Xshown in the status line.
- X.TP
- X.B ^A-7
- XSend a modem break. This is
- X.B not
- Xthe same as the break key on the keyboard.
- X.TP
- X.B ^A-up
- XDisplay a menu of file transfer protocols to be used to send files to a
- Xremote system. Uses the up arrow key.
- X.TP
- X.B ^A-down
- XDisplay file transfer protocols to be used to receive files from a
- Xremote system. Uses the down arrow key.
- X.TP
- X.B ^A-F
- XDisplay the contents of a Unix directory.
- X.TP
- X.B ^A-G
- XDump the contents of the screen to a specified file. Special graphics
- Xcharacters may not be represented accurately in the file.
- X.TP
- X.B ^A-1
- XBegin data logging. Prompts the user for the name of the file that will
- Xbe used to collect a complete record of the terminal session.
- X.TP
- X.B ^A-2
- XToggle the data logging option without prompting for a new file name.
- XThe status line shows the current data logging mode.
- X.SH FILE TRANSFERS
- X.I Pcomm
- Xunderstands the following file transfer protocols:
- X.PP
- X.RS 5
- X.nf
- Xprotocol packet error multiple
- Xname size method files?
- X--------- -------- ------------ --------
- Xxmodem 128 checksum/CRC no
- Xxmodem-1k 128/1024 checksum/CRC no
- Xmodem7 128 checksum yes
- Xymodem 128/1024 CRC yes
- Xymodem-g 128/1024 none yes
- XASCII none none no
- X.fi
- X.RE
- X.PP
- XIn addition,
- X.I Pcomm
- Xcan use an external program, such as kermit or the sz/rz/dsz programs,
- Xto transfer files.
- X.PP
- X.SH CONFIGURATION
- X.I Pcomm
- Xmust have access to the terminfo or termcap data for the terminal being
- Xused. The minimum capabilities include a screen size of at least 80
- Xcolumns by 24 lines and cursor movement capabilities. Running
- X.I Pcomm
- Xfrom terminals at relatively slow speeds (i.e.: 1200 baud) will cause
- Xthe windows to appear sluggish.
- X.PP
- XTerminals that don't have arrow keys or systems without the newer
- Xversions of curses(3) will require the user to substitute the letter "U"
- Xfor "up arrow" and "N" for "down arrow".
- X.PP
- XThere are three Pcomm support files that contain the default parameters,
- Xthe modem/tty database, and dialing directory entries. Users may
- Xmaintain private versions of these files in a directory of their choice.
- X.I Pcomm
- Xuses the environmental variable PCOMM to search for these "private"
- Xversions. The following directories are searched to find the support
- Xfiles:
- X.PP
- X.RS 5
- X.nf
- X+o directory given with the "-d" option
- X+o directory in the PCOMM environmental variable
- X+o current directory
- X+o default directory (compiled into Pcomm)
- X.fi
- X.RE
- X.PP
- XThe "index" field in the dialing directory serves two purposes. The
- Xfirst use is to act as a short cut into the dialing directory with
- Xthe "-f" command line option. The second use is to specify a tty name
- Xfor a given entry. If the "index" is a valid device name, that device
- Xis used instead of searching the tty database for a free port.
- X.SH FILES
- X.nf
- Xpcomm.dial_dir the dialing directory
- Xpcomm.modem the modem/tty database
- Xpcomm.param the start-up default parameters
- X.fi
- X.SH SEE ALSO
- XPcomm Reference Manual, xmodem(1), mdm(1)
- echo shar: "12 control characters may be missing from 'Pcomm.1'"
- SHAR_EOF
- if test 7955 -ne "`wc -c < 'Pcomm.1'`"
- then
- echo shar: "error transmitting 'Pcomm.1'" '(should have been 7955 characters)'
- fi
- fi
- echo shar: "extracting 'Pcomm.dial_dir'" '(320 characters)'
- if test -f 'Pcomm.dial_dir'
- then
- echo shar: "will not over-write existing file 'Pcomm.dial_dir'"
- else
- sed 's/^X//' << \SHAR_EOF > 'Pcomm.dial_dir'
- XDIR_1=Abbey Road;1 (512) 590-6036;2400-N-8-1;F;
- XDIR_2=Tel-Med-Com;555-8686;9600-E-7-1;F;
- XDIR_3=C Board;1 (619) 722-8724;2400-N-8-1;F;
- XDIR_4=Crest;1 (213) 471-2518;2400-N-8-1;F;crest
- XDIR_5=Last Chance;1 (219) 762-8411;2400-E-7-1;F;
- XDIR_6=Killer;1 (214) 827-1994;1200-E-7-1;F;
- XDIR_7=System A (direct);;19200-E-7-1;F;tty12
- SHAR_EOF
- if test 320 -ne "`wc -c < 'Pcomm.dial_dir'`"
- then
- echo shar: "error transmitting 'Pcomm.dial_dir'" '(should have been 320 characters)'
- fi
- fi
- echo shar: "extracting 'Pcomm.modem'" '(598 characters)'
- if test -f 'Pcomm.modem'
- then
- echo shar: "will not over-write existing file 'Pcomm.modem'"
- else
- sed 's/^X//' << \SHAR_EOF > 'Pcomm.modem'
- XTTY_1=tty10;HAYES;0
- XTTY_2=tty11;HAYES;0
- XTTY_3=tty12;DIRECT;0
- XTTY_4=tty13;TELEBIT;0
- XTTY_5=tty13;FAST_TELEBIT;0
- XMODEM_1a=HAYES;ATS7=45S11=70E0Q0V1X4&D2!;ATDT;!;~~+++~~ATH0!
- XMODEM_1b=Y;CONNECT!;CONNECT 1200;CONNECT 2400;;;
- XMODEM_1c=BUSY;VOICE;NO CARRIER;
- XMODEM_2a=DIRECT;;;;
- XMODEM_2b=N;;;;;;
- XMODEM_2c=;;;
- XMODEM_3a=TELEBIT;%AAAAAATS50=0S2=43S95=0M1!;%AAAAAATDTW;!;~~+++~~ATH0!
- XMODEM_3b=Y;CONNECT 300;CONNECT 1200;CONNECT 2400;;;
- XMODEM_3c=BUSY;ERROR;NO CARRIER;
- XMODEM_4a=FAST_TELEBIT;%AAAAAATS50=255S2=43S95=0M1!;%AAAAAATDTW;!;~~+++~~ATH0!
- XMODEM_4b=N;;;;;CONNECT;CONNECT
- XMODEM_4c=BUSY;ERROR;NO CARRIER;
- SHAR_EOF
- if test 598 -ne "`wc -c < 'Pcomm.modem'`"
- then
- echo shar: "error transmitting 'Pcomm.modem'" '(should have been 598 characters)'
- fi
- fi
- echo shar: "extracting 'Pcomm.param'" '(453 characters)'
- if test -f 'Pcomm.param'
- then
- echo shar: "will not over-write existing file 'Pcomm.param'"
- else
- sed 's/^X//' << \SHAR_EOF > 'Pcomm.param'
- XD_BAUD=1200
- XD_PARITY=E
- XD_DBITS=7
- XD_SBITS=1
- XHOT=1
- XASCII_HOT=^A
- XD_DUPLEX=FULL
- XFLOW=XON/XOFF
- XCR_IN=CR
- XCR_OUT=CR
- XLOGFILE=pcomm.log
- XDUMPFILE=pcomm.dump
- XSTRIP=YES
- XPAUSE_CHAR=~
- XCR_CHAR=!
- XCTRL_CHAR=^
- XESC_CHAR=|
- XBRK_CHAR=%
- XABORT=KEEP
- XC_DELAY=35
- XR_DELAY=5
- XLECHO=NO
- XEXPAND=NO
- XCR_DELAY=0
- XPACE=NO
- XCR_UP=NONE
- XLF_UP=ADD CR
- XTIMER=5
- XCR_DN=STRIP
- XLF_DN=NONE
- XLD_PLUS=
- XLD_MINUS=
- XLD_AT=8,
- XLD_POUND=9
- XMAC_1=hello
- XMAC_2=
- XMAC_3=
- XMAC_4=
- XMAC_5=
- XMAC_6=
- XMAC_7=
- XMAC_8=
- XMAC_9=
- XMAC_0=
- SHAR_EOF
- if test 453 -ne "`wc -c < 'Pcomm.param'`"
- then
- echo shar: "error transmitting 'Pcomm.param'" '(should have been 453 characters)'
- fi
- fi
- echo shar: "extracting 'Unixpc.shar'" '(12194 characters)'
- if test -f 'Unixpc.shar'
- then
- echo shar: "will not over-write existing file 'Unixpc.shar'"
- else
- sed 's/^X//' << \SHAR_EOF > 'Unixpc.shar'
- X#! /bin/sh
- X# This is a shell archive, meaning:
- X# 1. Remove everything above the #! /bin/sh line.
- X# 2. Save the resulting text in a file.
- X# 3. Execute the file with /bin/sh (not csh) to create:
- X# Ifile.sh
- X# Makefile
- X# Pcomm.modem
- X# Readme.7300
- X# config.h
- X# This archive created: Sat Aug 20 12:40:17 1988
- Xexport PATH; PATH=/bin:/usr/bin:$PATH
- Xecho shar: "extracting 'Ifile.sh'" '(705 characters)'
- Xif test -f 'Ifile.sh'
- Xthen
- X echo shar: "will not over-write existing file 'Ifile.sh'"
- Xelse
- Xsed 's/^X//' << \SHAR_EOF > 'Ifile.sh'
- XXex - $1 << EOF
- XX1,\$s/^PC/xPC/
- XX1,\$s/^BC/xBC/
- XX1,\$s/^UP/xUP/
- XX1,\$s/^ospeed/xospeed/
- XX1,\$s/^LINES/xLINES/
- XX1,\$s/^COLS/xCOLS/
- XX1,\$s/^tgetflag/xtgetflag/
- XX1,\$s/^tgetent/xtgetent/
- XX1,\$s/^tgetstr/xtgetstr/
- XX1,\$s/^tgetnum/xtgetnum/
- XX1,\$s/^tgoto/xtgoto/
- XX1,\$s/^tputs/xtputs/
- XX1,\$s/^wrefresh/xwrefresh/
- XX1,\$s/^initscr/xinitscr/
- XX1,\$s/^cbreak/xcbreak/
- XX1,\$s/^nl/xnl/
- XX1,\$s/^flushinp/xflushinp/
- XX1,\$s/^noecho/xnoecho/
- XX1,\$s/^savetty/xsavetty/
- XX1,\$s/^resetty/xresetty/
- XX1,\$s/^echo/xecho/
- XX1,\$s/^nocbreak/xnocbreak/
- XX1,\$s/^nonl/xnonl/
- XX1,\$s/^keypad/xkeypad/
- XX1,\$s/^endwin/xendwin/
- XX1,\$s/^printw/xprintw/
- XX1,\$s/^fixterm/xfixterm/
- XX1,\$s/^resetterm/xresetterm/
- XX1,\$s/^setterm/xsetterm/
- XX1,\$s/^baudrate/xbaudrate/
- XXw
- XXq
- XXEOF
- XSHAR_EOF
- Xif test 705 -ne "`wc -c < 'Ifile.sh'`"
- Xthen
- X echo shar: "error transmitting 'Ifile.sh'" '(should have been 705 characters)'
- Xfi
- Xfi
- Xecho shar: "extracting 'Makefile'" '(3891 characters)'
- Xif test -f 'Makefile'
- Xthen
- X echo shar: "will not over-write existing file 'Makefile'"
- Xelse
- Xsed 's/^X//' << \SHAR_EOF > 'Makefile'
- XX# Pcomm
- XX# for AT&T Unix PC 7300/3b1
- XX#
- XX
- XXCFLAGS = -O
- XX#CURSES = -lcurses -ltermcap
- XXCURSES = -lcurses
- XXLD = ld -s
- XXSHAR = shar -a
- XXBIN = /usr/local/bin
- XX
- XXSHAREDLIB = shlib_c.ifile
- XX
- XXPCOMM = admin.o chg_dir.o curses.o d_delete.o d_lib.o d_manual.o \
- XX d_menu.o d_print.o d_prompt.o d_revise.o data_log.o di_delay.o \
- XX di_win.o dial.o expand.o help.o info.o init.o line_set.o \
- XX list_dir.o ls_menu.o m_lib.o macro.o main.o n_shell.o p_lib.o \
- XX passthru.o pexit.o port.o redial.o s_axfer.o s_gen.o s_menu.o \
- XX s_modem.o s_prompt.o s_term.o s_tty.o screen.o st_line.o \
- XX strings.o terminal.o x_ascii.o x_batch.o x_extrnl.o x_menu.o \
- XX x_rcv.o x_send.o x_win.o xmodem.o
- XX
- XXINPUT = input.o vcs.o
- XX
- XXOTHERS = setvbuf.o doprnt.o
- XX
- XXall: pcomm pcomm_input install
- XX
- XXpcomm: $(PCOMM) $(OTHERS) $(SHAREDLIB)
- XX $(LD) $(PCOMM) $(OTHERS) $(CURSES) /lib/crt0s.o $(SHAREDLIB) -o pcomm
- XX
- XXpcomm_input: $(INPUT) $(OTHERS) $(SHAREDLIB)
- XX $(LD) $(INPUT) $(OTHERS) $(CURSES) /lib/crt0s.o $(SHAREDLIB) -o pcomm_input
- XX
- XXsetvbuf.o:
- XX ar x /lib/libc.a setvbuf.o
- XX
- XXdoprnt.o:
- XX ar x /lib/libc.a doprnt.o
- XX
- XXshlib_c.ifile:
- XX cp /lib/shlib.ifile shlib_c.ifile
- XX sh Ifile.sh shlib_c.ifile
- XX
- XXinstall:
- XX cp pcomm $(BIN)
- XX# rm pcomm
- XX cp pcomm_input $(BIN)
- XX# rm pcomm_input
- XX
- XXlint:
- XX lint -p -Dlint *.c
- XX
- XXshar:
- XX cat Doc > pcomm_sh.1
- XX $(SHAR) Readme Release.notes Makefile Pcomm.1 Pcomm.dial_dir \
- XX Pcomm.modem Pcomm.param Unixpc.shar config.h dial_dir.h misc.h \
- XX modem.h param.h status.h vcs.h xmodem.h > pcomm_sh.2
- XX $(SHAR) admin.c chg_dir.c curses.c d_delete.c d_lib.c d_manual.c \
- XX d_menu.c d_print.c d_prompt.c d_revise.c data_log.c di_delay.c \
- XX > pcomm_sh.3
- XX $(SHAR) di_win.c dial.c expand.c getcwd.c getopt.c help.c info.c \
- XX init.c input.c line_set.c list_dir.c ls_menu.c > pcomm_sh.4
- XX $(SHAR) m_lib.c macro.c main.c n_shell.c p_lib.c passthru.c \
- XX pexit.c port.c redial.c > pcomm_sh.5
- XX $(SHAR) s_axfer.c s_gen.c s_menu.c s_modem.c s_prompt.c s_term.c \
- XX s_tty.c screen.c st_line.c strings.c terminal.c > pcomm_sh.6
- XX $(SHAR) vcs.c x_ascii.c x_batch.c x_extrnl.c x_menu.c x_rcv.c \
- XX > pcomm_sh.7
- XX $(SHAR) x_send.c x_win.c xmodem.c > pcomm_sh.8
- XX
- XXadmin.o: config.h dial_dir.h param.h
- XXchg_dir.o: config.h misc.h
- XXcurses.o: config.h misc.h
- XXd_delete.o: config.h dial_dir.h misc.h param.h
- XXd_lib.o: dial_dir.h param.h
- XXd_manual.o: config.h misc.h dial_dir.h
- XXd_menu.o: config.h dial_dir.h misc.h param.h
- XXd_print.o: config.h dial_dir.h misc.h
- XXd_prompt.o: config.h dial_dir.h misc.h
- XXd_revise.o: config.h dial_dir.h misc.h param.h
- XXdata_log.o: config.h misc.h param.h status.h
- XXdi_delay.o: config.h misc.h param.h
- XXdi_win.o: config.h dial_dir.h misc.h modem.h param.h
- XXdial.o: config.h dial_dir.h misc.h modem.h param.h
- XXexpand.o: config.h
- XXhelp.o: config.h misc.h
- XXinit.o: config.h misc.h status.h
- XXinput.o: config.h misc.h status.h vcs.h
- XXline_set.o: dial_dir.h param.h
- XXlist_dir.o: config.h misc.h
- XXls_menu.o: config.h dial_dir.h misc.h param.h
- XXm_lib.o: modem.h
- XXmacro.o: config.h misc.h param.h
- XXmain.o: config.h dial_dir.h modem.h param.h status.h
- XXn_shell.o: config.h
- XXp_lib.o: param.h
- XXpassthru.o: config.h misc.h
- XXpexit.o: config.h dial_dir.h misc.h param.h status.h
- XXport.o: config.h dial_dir.h modem.h
- XXredial.o: config.h dial_dir.h misc.h
- XXs_axfer.o: config.h misc.h param.h
- XXs_gen.o: config.h misc.h param.h
- XXs_menu.o: config.h misc.h
- XXs_modem.o: config.h misc.h modem.h
- XXs_prompt.o: config.h misc.h
- XXs_term.o: config.h misc.h param.h status.h
- XXs_tty.o: config.h misc.h modem.h
- XXscreen.o: config.h param.h status.h
- XXst_line.o: config.h dial_dir.h misc.h modem.h param.h status.h
- XXterminal.o: config.h dial_dir.h misc.h modem.h param.h status.h
- XXvcs.o: config.h vcs.h
- XXx_ascii.o: config.h misc.h param.h
- XXx_batch.o: config.h misc.h xmodem.h
- XXx_extrnl.o: config.h
- XXx_menu.o: config.h misc.h xmodem.h
- XXx_rcv.o: config.h dial_dir.h misc.h xmodem.h
- XXx_send.o: config.h dial_dir.h misc.h xmodem.h
- XXx_win.o: config.h dial_dir.h misc.h xmodem.h
- XXxmodem.o: config.h misc.h param.h xmodem.h
- XSHAR_EOF
- Xif test 3891 -ne "`wc -c < 'Makefile'`"
- Xthen
- X echo shar: "error transmitting 'Makefile'" '(should have been 3891 characters)'
- Xfi
- Xfi
- Xecho shar: "extracting 'Pcomm.modem'" '(151 characters)'
- Xif test -f 'Pcomm.modem'
- Xthen
- X echo shar: "will not over-write existing file 'Pcomm.modem'"
- Xelse
- Xsed 's/^X//' << \SHAR_EOF > 'Pcomm.modem'
- XXTTY_1=ph1;OBM;0
- XXTTY_2=tty000;DIRECT;0
- XXMODEM_1a=OBM;;%;@;
- XXMODEM_1b=N;CONNECT;CONNECT;;;;
- XXMODEM_1c=;;;
- XXMODEM_2a=DIRECT;;;;
- XXMODEM_2b=N;;;;;;
- XXMODEM_2c=;;;
- XSHAR_EOF
- Xif test 151 -ne "`wc -c < 'Pcomm.modem'`"
- Xthen
- X echo shar: "error transmitting 'Pcomm.modem'" '(should have been 151 characters)'
- Xfi
- Xfi
- Xecho shar: "extracting 'Readme.7300'" '(3530 characters)'
- Xif test -f 'Readme.7300'
- Xthen
- X echo shar: "will not over-write existing file 'Readme.7300'"
- Xelse
- Xsed 's/^X//' << \SHAR_EOF > 'Readme.7300'
- XX Pcomm v1.1
- XX Additional Notes for users of
- XX AT&T Unix PC 7300/3b1
- XX
- XX 1) The shared libraries on your system contain Terminal Access
- XX Method (TAM) routines in lieu of curses(3) routines. However,
- XX many of the routines have the same names! This means that
- XX curses library is not compatible with the shared library. So,
- XX to circumvent the problem, an alternate shared library "link
- XX directive file" is needed. The Ifile.sh file is a shell script
- XX that is run by the Makefile to create this alternate file. The
- XX alternate file has the references to the TAM routines removed
- XX (actually, they just have an 'x' placed in the names). The
- XX actual shared library binaries are NOT altered. We just fool
- XX the linker into believing that the TAM routines aren't there.
- XX
- XX 2) Before Pcomm can be compiled, the curses library routines
- XX must be installed on your system. The diskette labled
- XX "Curses/Terminfo Programmer's Package" is a part of the "Unix
- XX Developement Set". Likewise, before Pcomm can be used, the
- XX terminfo database must be installed. The diskettes labled
- XX "Curses/Terminfo End User Package" and "Terminfo Database" are
- XX a part of the "Unix Foundation Set"
- XX
- XX 3) If you are running Unix version 3.0 or older, you must edit
- XX the "config.h" file to change the OLDCURSES definition from
- XX "#undef" to "#define". I understand the older version of
- XX curses(3) is very buggy.
- XX
- XX 4) Did you know that your system can use DEC vt100 style line
- XX drawing character? Curses automatically uses the "alternate"
- XX character set (if found) to draw the boxes and lines rather than
- XX using the '-' and '|' characters. To allow your system to use
- XX this feature, there are two things you must do:
- XX
- XX 1) Load the line drawing font in slot 1 prior to running
- XX a program requiring them. This can be done by typing:
- XX
- XX setf /usr/lib/wfont/BLD.ft 1
- XX
- XX ...or permanently install this font in slot 1 by adding
- XX the following two lines to the end of the /etc/rc file:
- XX
- XX sfont /usr/lib/wfont/BLD.ft 1
- XX setf /usr/lib/wfont/BLD.ft 1
- XX
- XX 2) Tell curses(3) about the alternate character set by
- XX editing the terminfo database.
- XX
- XX To get a copy of the terminfo entry to play with,
- XX you type:
- XX
- XX infocmp -I s4 > s4.ti
- XX
- XX now add the following line (with a leading tab) to the
- XX 's4.ti' file:
- XX
- XX acsc=+h\,g.e-fjjkkllmmnnqqttuuvvwwxx,
- XX
- XX recompile the new entry:
- XX
- XX tic s4.ti
- XX
- XX 5) The "tset" command is broken on every version of Unix this
- XX box has ever seen (it is commented out of /etc/profile for a
- XX good reason). One of tset's functions is to send a string to
- XX initialize the settings of the terminal and to set the tab
- XX stops. The fact that this function doesn't work is often
- XX overlooked because the console (as well as a lot of other
- XX terminals) doesn't require any initialization. However, if you
- XX call into your system from a remote terminal that *does* require
- XX initialization, you've got trouble.
- XX
- XX For example, curses(3) looks at the terminfo database to see if
- XX your terminal has "hardware tabs", if so, it expects the tab
- XX stops to be set. Ignoring tabs by using "stty -tabs" (to
- XX convert tabs to spaces) won't work, in fact, curses(3) RESETS
- XX things as if you had typed "stty tabs"! In this case, you must
- XX use the "tabs" command before running Pcomm.
- XX
- XX Likewise, my terminfo entry for PCPLUS v1.1's emulation of a
- XX vt102 has "^[)0" in the initialization string to load the line
- XX drawing character set. But, since tset is broken, I've got to
- XX cat a file containing the above command sequence before running
- XX Pcomm.
- XSHAR_EOF
- Xif test 3530 -ne "`wc -c < 'Readme.7300'`"
- Xthen
- X echo shar: "error transmitting 'Readme.7300'" '(should have been 3530 characters)'
- Xfi
- Xfi
- Xecho shar: "extracting 'config.h'" '(1584 characters)'
- Xif test -f 'config.h'
- Xthen
- X echo shar: "will not over-write existing file 'config.h'"
- Xelse
- Xsed 's/^X//' << \SHAR_EOF > 'config.h'
- XX/*
- XX * Various tunable parameters. This should appear before any other local
- XX * header file.
- XX */
- XX
- XX/* Use the dialing routines specific to the AT&T Unix PC 7300/3b1 */
- XX#define UNIXPC
- XX
- XX/* Older versions of curses(3) use termcap in lieu of terminfo */
- XX#undef OLDCURSES
- XX
- XX/* Use shared memory in lieu of a file for the virtual screen */
- XX#define SHAREDMEM
- XX
- XX/* Should a missing video attribute be promoted to standout? */
- XX#define NOPROMOTE
- XX
- XX/* Use extra precautions if Pcomm is set-user-id or set-group-id */
- XX#undef SETUGID
- XX
- XX/* Should Pcomm make a log of all phone calls? */
- XX#undef LOG_CALLS
- XX
- XX/* The name of the log file (if used). */
- XX#define LOGFILE "/usr/adm/phone.calls"
- XX
- XX/* Should long distance (toll) calls be limited to a specific group? */
- XX#undef LIMIT_LD
- XX
- XX/* The name of the privileged group for limiting long distance calls */
- XX#define GROUP_NAME "uucp"
- XX
- XX/* The path to the line printer program */
- XX#define LPR "/usr/bin/lp"
- XX
- XX/* The path to the "pretty" printer program (if none, use same as LPR) */
- XX#define LPRINT "/usr/bin/lp"
- XX
- XX/* The path to the default directory containing the Pcomm support files */
- XX#define DEFAULT_DIR "/usr/local/lib/pcomm"
- XX
- XX/* The path to the directory where UUCP locks are found */
- XX#define LOCK_DIR "/usr/spool/uucp"
- XX
- XX/* Do the lock files use ASCII encoded PID's? */
- XX#undef ASCII_PID
- XX
- XX/* Should Pcomm optimize redialing by keeping the TTY port open */
- XX#define KEEP_PORT
- XX
- XX/* Does the status line scroll up on "magic cookie" terminals? */
- XX#define XMC_BROKE
- XX
- XX/* Does the alarm() system call work correctly with the wgetch() function? */
- XX#undef WGETCH_BROKE
- XSHAR_EOF
- Xif test 1584 -ne "`wc -c < 'config.h'`"
- Xthen
- X echo shar: "error transmitting 'config.h'" '(should have been 1584 characters)'
- Xfi
- Xfi
- Xexit 0
- X# End of shell archive
- SHAR_EOF
- if test 12194 -ne "`wc -c < 'Unixpc.shar'`"
- then
- echo shar: "error transmitting 'Unixpc.shar'" '(should have been 12194 characters)'
- fi
- fi
- echo shar: "extracting 'config.h'" '(1582 characters)'
- if test -f 'config.h'
- then
- echo shar: "will not over-write existing file 'config.h'"
- else
- sed 's/^X//' << \SHAR_EOF > 'config.h'
- X/*
- X * Various tunable parameters. This should appear before any other local
- X * header file.
- X */
- X
- X/* Use the dialing routines specific to the AT&T Unix PC 7300/3b1 */
- X#undef UNIXPC
- X
- X/* Older versions of curses(3) use termcap in lieu of terminfo */
- X#undef OLDCURSES
- X
- X/* Use shared memory in lieu of a file for the virtual screen */
- X#define SHAREDMEM
- X
- X/* Should a missing video attribute be promoted to standout? */
- X#define NOPROMOTE
- X
- X/* Use extra precautions if Pcomm is set-user-id or set-group-id */
- X#undef SETUGID
- X
- X/* Should Pcomm make a log of all phone calls? */
- X#undef LOG_CALLS
- X
- X/* The name of the log file (if used). */
- X#define LOGFILE "/usr/adm/phone.calls"
- X
- X/* Should long distance (toll) calls be limited to a specific group? */
- X#undef LIMIT_LD
- X
- X/* The name of the privileged group for limiting long distance calls */
- X#define GROUP_NAME "uucp"
- X
- X/* The path to the line printer program */
- X#define LPR "/usr/bin/lp"
- X
- X/* The path to the "pretty" printer program (if none, use same as LPR) */
- X#define LPRINT "/usr/bin/lp"
- X
- X/* The path to the default directory containing the Pcomm support files */
- X#define DEFAULT_DIR "/usr/local/lib/pcomm"
- X
- X/* The path to the directory where UUCP locks are found */
- X#define LOCK_DIR "/usr/spool/uucp"
- X
- X/* Do the lock files use ASCII encoded PID's? */
- X#undef ASCII_PID
- X
- X/* Should Pcomm optimize redialing by keeping the TTY port open */
- X#define KEEP_PORT
- X
- X/* Does the status line scroll up on "magic cookie" terminals? */
- X#undef XMC_BROKE
- X
- X/* Does the alarm() system call work correctly with the wgetch() function? */
- X#undef WGETCH_BROKE
- SHAR_EOF
- if test 1582 -ne "`wc -c < 'config.h'`"
- then
- echo shar: "error transmitting 'config.h'" '(should have been 1582 characters)'
- fi
- fi
- echo shar: "extracting 'dial_dir.h'" '(870 characters)'
- if test -f 'dial_dir.h'
- then
- echo shar: "will not over-write existing file 'dial_dir.h'"
- else
- sed 's/^X//' << \SHAR_EOF > 'dial_dir.h'
- X/*
- X * The dialing directory structure. The first eight elements are
- X * contained in the pcomm.dial_dir file.
- X */
- X
- X#define NUM_DIR 100
- X#define NUM_QUEUE 10
- X
- Xstruct DIAL_DIR {
- X char *name[NUM_DIR+1]; /* name of system being called */
- X char *number[NUM_DIR+1]; /* phone number */
- X int baud[NUM_DIR+1]; /* baud rate */
- X char parity[NUM_DIR+1]; /* parity */
- X int dbits[NUM_DIR+1]; /* data bits */
- X int sbits[NUM_DIR+1]; /* stop bits */
- X char duplex[NUM_DIR+1]; /* duplex (F = full, H = half) */
- X char *index[NUM_DIR+1]; /* command line index (or TTY) */
- X
- X int q_num[NUM_QUEUE]; /* entry numbers in the queue */
- X char q_ld[NUM_QUEUE]; /* LD codes in the queue */
- X
- X int d_entries; /* number of entries in the file */
- X int d_cur; /* the current entry */
- X
- X char *d_path; /* path to the pcomm.dial_dir file */
- X};
- X
- X#ifndef MAIN
- Xextern struct DIAL_DIR *dir;
- X#endif /* MAIN */
- SHAR_EOF
- if test 870 -ne "`wc -c < 'dial_dir.h'`"
- then
- echo shar: "error transmitting 'dial_dir.h'" '(should have been 870 characters)'
- fi
- fi
- echo shar: "extracting 'misc.h'" '(1404 characters)'
- if test -f 'misc.h'
- then
- echo shar: "will not over-write existing file 'misc.h'"
- else
- sed 's/^X//' << \SHAR_EOF > 'misc.h'
- X/*
- X * Definitions to support the home-grown curses(3) functions and to make
- X * the old curses(3) routines happy. ("config.h" must be included first).
- X */
- X
- X#define mvwattrstr(w,y,x,a,s) (wmove(w,y,x)==ERR?ERR:wattrstr(w,a,s))
- X#define mvwattrch(w,y,x,a,c) (wmove(w,y,x)==ERR?ERR:wattrch(w,a,c))
- X#define mvwattrnum(w,y,x,a,n) (wmove(w,y,x)==ERR?ERR:wattrnum(w,a,n))
- X#define mvattrstr(y,x,a,s) (wmove(stdscr,y,x)==ERR?ERR:wattrstr(stdscr,a,s))
- X#define mvattrch(y,x,a,c) (wmove(stdscr,y,x)==ERR?ERR:wattrch(stdscr,a,c))
- X#define mvattrnum(y,x,a,n) (wmove(stdscr,y,x)==ERR?ERR:wattrnum(stdscr,a,n))
- X#define attrstr(a,s) wattrstr(stdscr,a,s)
- X#define attrch(a,c) wattrch(stdscr,a,c)
- X#define attrnum(a,n) wattrnum(stdscr,a,n)
- X
- X#ifdef OLDCURSES
- X#ifdef NOPROMOTE
- X#define A_BOLD 0
- X#define A_BLINK 0
- X#define A_REVERSE 1
- X#define A_DIM 0
- X#define A_STANDOUT 1
- X#define A_UNDERLINE 0
- X#else /* NOPROMOTE */
- X#define A_BOLD 1
- X#define A_BLINK 1
- X#define A_REVERSE 1
- X#define A_DIM 1
- X#define A_STANDOUT 1
- X#define A_UNDERLINE 1
- X#endif /* NOPROMOTE */
- X#endif /* OLDCURSES */
- X
- X#ifdef OLDCURSES
- Xtypedef char chtype
- X#endif /* OLDCURSES */
- X
- X#ifdef ACS_HLINE
- X#define VERT (chtype)0
- X#define HORZ (chtype)0
- X#else /* ACS_HLINE */
- X#define VERT (chtype)'|'
- X#define HORZ (chtype)'-'
- X#define ACS_VLINE (chtype)'|'
- X#define ACS_HLINE (chtype)'-'
- X#endif /* ACS_HLINE */
- X
- X#define BEL 7
- X#define BS 8
- X#define ESC 27
- X#define DEL 127
- SHAR_EOF
- if test 1404 -ne "`wc -c < 'misc.h'`"
- then
- echo shar: "error transmitting 'misc.h'" '(should have been 1404 characters)'
- fi
- fi
- echo shar: "extracting 'modem.h'" '(1538 characters)'
- if test -f 'modem.h'
- then
- echo shar: "will not over-write existing file 'modem.h'"
- else
- sed 's/^X//' << \SHAR_EOF > 'modem.h'
- X/*
- X * The modem and TTY databases. The first 3 elements make up the TTY
- X * database, the next 16 make up the modem database. A "tname" in common
- X * with a "mname" link the two together.
- X */
- X
- X#define NUM_TTY 10
- X#define NUM_MODEM 10
- X
- Xstruct MODEM {
- X char *tty[NUM_TTY]; /* TTY names */
- X char *tname[NUM_TTY]; /* modem name */
- X int init_sp[NUM_TTY]; /* initialization baud rate */
- X
- X char *mname[NUM_MODEM]; /* modem name (matches tname above) */
- X char *init[NUM_MODEM]; /* initialization */
- X char *dial[NUM_MODEM]; /* dial command */
- X char *suffix[NUM_MODEM]; /* dialing command suffix */
- X char *hang_up[NUM_MODEM]; /* hang up the modem */
- X char auto_baud[NUM_MODEM]; /* should we sync baud rates? */
- X char *con_3[NUM_MODEM]; /* 300 baud connect message */
- X char *con_12[NUM_MODEM]; /* 1200 baud connect message */
- X char *con_24[NUM_MODEM]; /* 2400 baud connect message */
- X char *con_48[NUM_MODEM]; /* 4800 baud connect message */
- X char *con_96[NUM_MODEM]; /* 9600 baud connect message */
- X char *con_192[NUM_MODEM]; /* 19200 baud connect message */
- X char *no_con1[NUM_MODEM]; /* no connect #1 */
- X char *no_con2[NUM_MODEM]; /* no connect #2 */
- X char *no_con3[NUM_MODEM]; /* no connect #3 */
- X char *no_con4[NUM_MODEM]; /* no connect #4 */
- X
- X int t_entries; /* number of TTY entries */
- X int m_entries; /* number of modem entries */
- X int t_cur; /* current TTY entry number */
- X int m_cur; /* current modem entry number */
- X
- X char *m_path; /* path to the pcomm.modem file */
- X};
- X
- X#ifndef MAIN
- Xextern struct MODEM *modem;
- X#endif /* MAIN */
- SHAR_EOF
- if test 1538 -ne "`wc -c < 'modem.h'`"
- then
- echo shar: "error transmitting 'modem.h'" '(should have been 1538 characters)'
- fi
- fi
- echo shar: "extracting 'param.h'" '(2757 characters)'
- if test -f 'param.h'
- then
- echo shar: "will not over-write existing file 'param.h'"
- else
- sed 's/^X//' << \SHAR_EOF > 'param.h'
- X/*
- X * The standard Pcomm parameters. Everything can be altered by using one
- X * of Pcomm's menus. Although editing by hand is not encouraged, the
- X * pcomm.param file is just an ASCII file.
- X */
- X
- X#define MAX_CDELAY 120
- X#define MIN_CDELAY 10
- X#define MAX_PAUSE 120
- X#define MIN_PAUSE 1
- X#define MAX_TIMER 20
- X#define MIN_TIMER 2
- X
- X#define NUM_PARAM 44
- X#define LINE_SET 0
- X#define TERM_SETUP 4
- X#define GEN_SETUP 10
- X#define DELAY_TIMES 19
- X#define ASCII_SETUP 21
- X#define LD_CODES 30
- X#define MACROS 34
- X
- Xstruct PARAM {
- X /* 0-3 used in ls_menu() */
- X int d_baud; /* default baud rate */
- X char d_parity; /* default parity */
- X int d_dbits; /* default data bits */
- X int d_sbits; /* default stop bits */
- X
- X /* 4-9 used in term_setup() */
- X int hot; /* the decimal code for the hot key */
- X char *ascii_hot; /* ascii representation of hot key */
- X char *d_duplex; /* default duplex */
- X char *flow; /* flow control */
- X char *cr_in; /* send as carriage return */
- X char *cr_out; /* receive carriage return as */
- X
- X /* 10-18 used in gen_setup() */
- X char *logfile; /* default log file */
- X char *dumpfile; /* default screen dump file */
- X char *strip; /* strip high bit (translate table) */
- X char pause_char; /* pause char synonym */
- X char cr_char; /* carriage return char synonym */
- X char ctrl_char; /* ctrl char synonym */
- X char esc_char; /* escape char synonym */
- X char brk_char; /* modem break synonym */
- X char *abort; /* destination of aborted downloads */
- X
- X /* 19-20 used in gen_setup() & delay_times() */
- X int c_delay; /* connect delay time */
- X int r_delay; /* redial delay time */
- X
- X /* 21-29 used in axfer_setup() */
- X char *lecho; /* echo locally? */
- X char *expand; /* expand blank lines? */
- X int cr_delay; /* carriage return delay (ms) */
- X char *pace; /* pace the output? */
- X char *cr_up; /* send carriage return as */
- X char *lf_up; /* send line feed as */
- X int timer; /* Transfer timeout */
- X char *cr_dn; /* receive carriage return as */
- X char *lf_dn; /* receive line feed as */
- X
- X /* 30-33 used in d_revise() */
- X char *ld_plus; /* + long distance code */
- X char *ld_minus; /* - long distance code */
- X char *ld_at; /* @ long distance code */
- X char *ld_pound; /* # long distance code */
- X
- X /* 34-43 used in macro() */
- X char *mac_1; /* shifted 1 macro */
- X char *mac_2; /* shifted 2 macro */
- X char *mac_3; /* shifted 3 macro */
- X char *mac_4; /* shifted 4 macro */
- X char *mac_5; /* shifted 5 macro */
- X char *mac_6; /* shifted 6 macro */
- X char *mac_7; /* shifted 7 macro */
- X char *mac_8; /* shifted 8 macro */
- X char *mac_9; /* shifted 9 macro */
- X char *mac_0; /* shifted 0 macro */
- X
- X char *p_path; /* path to the pcomm.param file */
- X};
- X
- X#ifndef MAIN
- Xextern struct PARAM *param;
- X#endif /* MAIN */
- SHAR_EOF
- if test 2757 -ne "`wc -c < 'param.h'`"
- then
- echo shar: "error transmitting 'param.h'" '(should have been 2757 characters)'
- fi
- fi
- echo shar: "extracting 'status.h'" '(767 characters)'
- if test -f 'status.h'
- then
- echo shar: "will not over-write existing file 'status.h'"
- else
- sed 's/^X//' << \SHAR_EOF > 'status.h'
- X/*
- X * The status flags, and other various changeable things. Obviously
- X * the "config.h" file must appear before this file.
- X */
- X
- X#define MAX_ROW 64
- X#define MAX_COL 128
- X#define PATH 128
- X
- Xstruct STATUS {
- X int fd; /* file descriptor for TTY */
- X int add_lf; /* add <CR> to <LF>? */
- X int log; /* status of log option */
- X int print; /* status of print option */
- X char log_path[PATH]; /* data logging file */
- X#ifdef SHAREDMEM
- X int clr; /* flag to clear the screen */
- X int row; /* cursor row position */
- X int col; /* cursor column position */
- X char vs[MAX_ROW][MAX_COL+1]; /* the virtual screen */
- X#else /* SHAREDMEM */
- X char vs_path[PATH]; /* virtual screen file */
- X#endif /* SHAREDMEM */
- X};
- X
- X#ifndef MAIN
- Xextern struct STATUS *status;
- X#endif /* MAIN */
- SHAR_EOF
- if test 767 -ne "`wc -c < 'status.h'`"
- then
- echo shar: "error transmitting 'status.h'" '(should have been 767 characters)'
- fi
- fi
- echo shar: "extracting 'vcs.h'" '(330 characters)'
- if test -f 'vcs.h'
- then
- echo shar: "will not over-write existing file 'vcs.h'"
- else
- sed 's/^X//' << \SHAR_EOF > 'vcs.h'
- X/*
- X * Definitions to support the detection of video command sequences
- X */
- X
- X#define VCS_SIZE 25
- X#define NUM_VCS 9
- X
- X#define HOME 0
- X#define CLR_EOL 1
- X#define CLR_EOS 2
- X#define CLEAR 3
- X#define MV_UP 4
- X#define MV_DOWN 5
- X#define MV_RIGHT 6
- X#define MV_LEFT 7
- X#define MV_DIRECT 8
- X
- X#define YES 1
- X#define NO 0
- X#define MAYBE (-1)
- SHAR_EOF
- if test 330 -ne "`wc -c < 'vcs.h'`"
- then
- echo shar: "error transmitting 'vcs.h'" '(should have been 330 characters)'
- fi
- fi
- echo shar: "extracting 'xmodem.h'" '(464 characters)'
- if test -f 'xmodem.h'
- then
- echo shar: "will not over-write existing file 'xmodem.h'"
- else
- sed 's/^X//' << \SHAR_EOF > 'xmodem.h'
- X/*
- X * Definitions for the xmodem stuff.
- X */
- X
- X#define MAX_ERRORS 10
- X
- X#define SOH 1
- X#define STX 2
- X#define EOT 4
- X#define ACK 6
- X#define NAK 21
- X#define CAN 24
- X#define CTRLZ 26
- X
- X#define PROTOCOLS 7
- X#define XMODEM 0
- X#define XMODEM_1k 1
- X#define MODEM7 2
- X#define YMODEM 3
- X#define YMODEM_G 4
- X#define XASCII 5
- X#define EXTRNL 6
- X
- X#define ABORT (-1)
- X#define ERROR (-2)
- X#define CANCEL (-3)
- X
- X#define CHECKSUM 0
- X#define CRC_CHECKSUM 1
- X#define CRC 2
- X#define NONE 3
- SHAR_EOF
- if test 464 -ne "`wc -c < 'xmodem.h'`"
- then
- echo shar: "error transmitting 'xmodem.h'" '(should have been 464 characters)'
- fi
- fi
- exit 0
- # End of shell archive
-
- --
- Please send comp.sources.unix-related mail to rsalz@uunet.uu.net.
-